/**********************************************************************
 * Project : WoWGuildRoster (http://www.codeplex.com/WowGuildRoster/)
 * Module  : DotNetWarcraft.WoWGuildRoster.Business.Constants
 **********************************************************************
 * 
 * 
 * 
 **********************************************************************
 * License : All code is subject to licensing terms per the Microsoft
 *   Permissive License (Ms-PL) v1.1. For full license information,
 *   refer to the packaged license.txt file.
 **********************************************************************
 * Revision History:
 * -----------------
 * 2007-07-29 -- Cliff Simpkins: Initial Version
 * 2007-08-26 -- Cliff Simpkins: Added DNN Values
 **********************************************************************
 */
using System;
using System.Data;
using System.Configuration;

namespace DotNetWarcraft.WoWGuildRoster.Business {
  public class WGRDnnConstants {
    public const int DNW_WGR_DNN_VERSION_MAJOR = 1;
    public const int DNW_WGR_DNN_VERSION_MINOR = 8;
    public const int DNW_WGR_DNN_VERSION_REVSN = 5;
    public const int DNW_WGR_DNN_VERSION_BUILD = 90926;
    public const bool DNW_WGR_DNN_VERSION_FLAG_RELEASE = true;
    public const bool DNW_WGR_DNN_VERSION_FLAG_BETA = false;
    public const bool DNW_WGR_DNN_VERSION_FLAG_CTP = false;

    public const String DNW_WGR_DNN_APPNAME = "DNW Guild Roster";
    public const String DNW_WGR_DNN_URL = "http://www.codeplex.com/WoWGuildRoster";
    public const String DNW_WGR_DNN_URL_CONFIG = "http://www.codeplex.com/WowGuildRoster/Wiki/View.aspx?title=DotNetNuke%20Installation%20Public%20Assembly&referringTitle=Home";

    public const String DNW_WGR_RESX_DIR = "~/DesktopModules/DNW-WoWGuildRoster/App_LocalResources/";
    public const String DNW_WGR_RESX_GENERAL = "~/DesktopModules/DNW-WoWGuildRoster/App_LocalResources/WGR-GuildRoster.resx";

    public const int SETTING_DEFAULT_LINES_PER_PAGE = 10;
    public const int SETTING_DEFAULT_LISTS_PER_ROW = 3;
    public const int SETTING_DEFAULT_MINLEVEL = 1;
    public const int SETTING_DEFAULT_MAXLEVEL = 80;
    public const int SETTING_DEFAULT_MINGRANK = 0;
    public const int SETTING_DEFAULT_MAXGRANK = 10;

    public const int SETTING_SLEEP_BETWEEN_ARMORY_PULLS = 7000; // Time in milliseconds

    public const String SETTING_OFFICER_ROLES = "OfficerRoles";
    public const String SETTING_MEMBER_ROLES = "MemberRoles";
    public const String SETTING_DISPLAY_TESTING_MODE = "DisplayTestingMode";
    public const String SETTING_LINES_PER_PAGE = "LinesPerPage";
    public const String SETTING_LISTS_PER_ROW = "ListsPerRow";
    public const String SETTING_ARMORY_STYLE_COLS = "ShowArmoryStyleColsOnly";
    public const String SETTING_MAINS_ONLY = "ShowMainsOnly";
    public const String SETTING_DISPLAY_TYPE = "RosterDisplayType";
    public const String SETTING_DISPLAY_CLASS = "RosterDisplayClass";
    public const String SETTING_DISPLAY_PROF = "RosterDisplayProf";
    public const String SETTING_DISPLAY_REPUTATION = "RosterDisplayRep";
    public const String SETTING_DISPLAY_RANK = "RosterDisplayRank";
    public const String SETTING_DISPLAY_MINLEVEL = "RosterDisplayMinLevel";
    public const String SETTING_DISPLAY_MAXLEVEL = "RosterDisplayMaxLevel";
    public const String SETTING_DISPLAY_MINGRANK = "RosterDisplayMinGRank";
    public const String SETTING_DISPLAY_MAXGRANK = "RosterDisplayMaxGRank";

    public const String ROSTER_DISPLAYTYPE_NOTES = "GuildNotes";
    public const String ROSTER_DISPLAYTYPE_ALL_CLASSES = "GuildClasses";
    public const String ROSTER_DISPLAYTYPE_ALL_PROFS = "GuildProfessions";
    public const String ROSTER_DISPLAYTYPE_ONE_CLASS = "GuildClassOne";
    public const String ROSTER_DISPLAYTYPE_ALL_RANKS = "GuildRanks";
    public const String ROSTER_DISPLAYTYPE_ONE_RANK = "GuildRankOne";
    public const String ROSTER_DISPLAYTYPE_ONE_PROF = "GuildProfessionOne";
    public const String ROSTER_DISPLAYTYPE_BY_LEVEL_ALL = "GuildByLevelAll";
    public const String ROSTER_DISPLAYTYPE_BY_LEVEL_RANGE = "GuildByLevelRange";
    public const String ROSTER_DISPLAYTYPE_BY_LEVEL_RANGE_ALPHA = "GuildByLevelRangeAlpha";
    public const String ROSTER_DISPLAYTYPE_BY_RANKS_ALL = "GuildByRanksAll";
    public const String ROSTER_DISPLAYTYPE_BY_RANKS_RANGE = "GuildByRanksRange";

    public const String VIEWSTATE_IS_IN_OFFICER_ROLE = "DNW_WGR_IsInOfficerRole";
    public const String VIEWSTATE_IS_IN_MEMBER_ROLE = "DNW_WGR_IsInMemberRole";

    public const String LOGTYPE_ROSTER_EVENT_PROCESSED = "SCHEDULER_EVENT_COMPLETED";

    public const String ASCX_CHARENTRY_STATTYPE_BASE = "base";
    public const String ASCX_CHARENTRY_STATTYPE_MELEE = "melee";
    public const String ASCX_CHARENTRY_STATTYPE_SPELL = "spell";
    public const String ASCX_CHARENTRY_STATTYPE_RANGED = "ranged";
    public const String ASCX_CHARENTRY_STATTYPE_DEFENSE = "defense";

    public static String DNW_WGR_DNN_Version {
      get {
        String _vers = DNW_WGR_DNN_VERSION_MAJOR.ToString() + "." +
                       DNW_WGR_DNN_VERSION_MINOR.ToString();

        if (DNW_WGR_DNN_VERSION_FLAG_CTP) {
          _vers += " CTP (" + DNW_WGR_DNN_VERSION_BUILD.ToString() + ")";
        } else if (DNW_WGR_DNN_VERSION_FLAG_BETA) {
          _vers += " Beta";
        }
        return _vers;
      }
    }

    public static String DNW_WGR_DNN_AppName {
      get {
        return DNW_WGR_DNN_APPNAME.ToString() + " v" + DNW_WGR_DNN_Version;
      }
    }
  }

  #region "Enumerations"
  public enum SortRosterBy {
    SortByCharID = 0,
    SortByCharName = 1,
    SortByCharClass = 2,
    SortByCharLevel = 3,
    SortByGameNotes = 4,
    SortByLogin = 5
  }

  public enum RosterListFilter {
    ShowAllChars = 0,
    ShowActiveChars = 1,
    ShowInactiveChars = 2,
    ShowSpecifiedChars = 3,
    ShowClaimedChars = 4,
    ShowUnclaimedChars = 5,
    ShowPrimaryChars = 6,
    ShowAltChars = 7
  }
  #endregion

}
